﻿using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework.Content;
using FlanProjectData.GameObjects;
using FlanProjectData.Sprites;

namespace FlanProjectData.Characters
{
    public abstract class Character
    {
        #region Properties

        #region Character Data

        public String Name { get; set; }

        #endregion

        #region Character Animation

        public Animation IdleAnimation { get; set; }
        public Animation WalkAnimation { get; set; }
        public Animation AttackAnimation { get; set; }
        public Animation OnHitAnimation { get; set; }
        public Animation DeathAnimation { get; set; }
        public Animation VictoryAnimation { get; set; }

        // Optional animations
        [ContentSerializer(Optional = true)]
        public Animation RunAnimation { get; set; }
        [ContentSerializer(Optional = true)]
        public Animation SpellcastAnimation { get; set; }
        [ContentSerializer(Optional = true)]
        public Animation EndSpellcastAnimation { get; set; }
        [ContentSerializer(Optional = true)]
        public Animation DefenseAnimation { get; set; }

        [ContentSerializer(Optional = true)]
        public int OnStartLookDirection { get; set; }
        [ContentSerializer(Optional = true)]
        public bool IsFloating { get; set; }
        [ContentSerializer(Optional = true)]
        public int HeightOffset { get; set; }

        #endregion

        #endregion
    }
}
